gh-146636: PEP 803: Reference documentation#148013
gh-146636: PEP 803: Reference documentation#148013encukou wants to merge 9 commits intopython:mainfrom
Conversation
ZeroIntensity
left a comment
There was a problem hiding this comment.
Congrats on the PEP acceptance :)
Mostly editorial comments from me. The content generally looks good.
| Note that compiling for Stable ABI is *not* a complete guarantee that code will | ||
| be compatible with the expected Python versions. | ||
| Stable ABI prevents *ABI* issues, like linker errors due to missing |
There was a problem hiding this comment.
I think we need to precede "Stable ABI" with "the"?
| Note that compiling for Stable ABI is *not* a complete guarantee that code will | |
| be compatible with the expected Python versions. | |
| Stable ABI prevents *ABI* issues, like linker errors due to missing | |
| Note that compiling for the Stable ABI is *not* a complete guarantee that code will | |
| be compatible with the expected Python versions. | |
| The Stable ABI prevents *ABI* issues, like linker errors due to missing |
There was a problem hiding this comment.
Even if there's two of them?
There was a problem hiding this comment.
Yeah, not too sure about the rules here. What about "the Stable ABIs"?
There was a problem hiding this comment.
The way I wrote it still sounds best to me...
|
The new check caught removals: https://github.com/python/cpython/actions/runs/23907059205/job/69719041532?pr=148013 (and on your PR out of everyone's ;-) |
ngoldbaum
left a comment
There was a problem hiding this comment.
Thanks for putting this together! I left a few comments inline, please take them or leave them as you see fit.
Doc/c-api/stable.rst
Outdated
| When using a build tool (for example, ``setuptools``), the tool is | ||
| generally responsible for setting macros and synchronizing them with | ||
| extension filenames and other metadata. | ||
| Prefer using the tool's options over defining the macros manually. |
There was a problem hiding this comment.
Maybe setuptools is a poor example to use above then? Because setuptools expects users to set the build flags manually...
You could delete the "(For example, SetupTools)" above, or maybe refer to meson-python or scikit-build-core instead? These days that's what I recommend to people depending on if they already use CMake or not.
There was a problem hiding this comment.
AFAIK Setuptools is the most widely known build tool; the example is there to clarify what kind of “build tool” I'm talking about.
Setuptools has a --py_limited_api argument. All tools will ideally need an update for abi3t.
Doc/c-api/stable.rst
Outdated
|
|
||
| The goal for the Limited API is to allow everything that is possible with the | ||
| - define both :c:macro:`!Py_LIMITED_API` and :c:macro:`!Py_TARGET_ABI3T`, or | ||
| - define only :c:macro:`!Py_LIMITED_API` and build for free-threaded Python. |
There was a problem hiding this comment.
| - define only :c:macro:`!Py_LIMITED_API` and build for free-threaded Python. | |
| - Define only :c:macro:`!Py_LIMITED_API` and define :c:macro:`!Py_GIL_DISABLED`. | |
| This happens automatically with a free-threaded interpreter, except on Windows. |
There was a problem hiding this comment.
I think defining Py_GIL_DISABLED "manually" is still only supported on Windows.
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
📚 Documentation preview 📚: https://cpython-previews--148013.org.readthedocs.build/